"""
示例包结构 Example module struct

├ lineup.js (Lineup) - 入口文件 index file
├ compile.js (Compile)
├ syntax
|  ├ const.js (Const) 

输出文件 Output file: lineup-min.js
"""

import JLinker

# 全自动的入口文件分析并链接 Automatically analyse the index file and link the module
JLinker.linkModule(name='Lineup', main='lineup.js', output='lineup-min.js')

# 半自动的包结构链接 Half-automatically read the module struct and link the module
JLinker.linkFiles(module={'syntax/const.js': 'Const', 
                          'compile.js': 'Compile',
                          'lineup.js': 'Lineup'}, output='lineup-min.js')

# 手动包结构分析 Module struct analysis
module = JLinker.analyseCode('lineup.js')
print(module)

# 手动代码转换 Module code to object code
code = JLinker.exportToObject('Lineup', open('lineup.js').read())
print(code)